<?php
class Documento extends ORMBase{
	
	protected $tablename = 'documento';
	
	public static function getmovimientos($cliente=NULL,$fecha=NULL,$nropagina)
	{
		
		$tam=30;
		$ini=$nropagina*30;		
		$sql= "SELECT d.documento,td.descripcion as tipodoc,date(d.fecha) as fecha,sum(dt.cantidad*dt.precioUnit)as montoV from documento d
			inner join detadoc dt on d.documento=dt.documento
			inner join tipodoc td on td.tipoDoc=d.tipoDoc
			inner join cliente c on d.cliente=c.cliente
			where d.cliente=? and d.fecha>?			
			group by d.documento 
			order by d.fecha
			limit $ini,$tam
		";
			
		return ORMConnection::Execute($sql,array($cliente,$fecha));	
			
		
	}
	public static function getTamaño($cliente,$fecha)
	{
		
		$sql= "SELECT count(*) from documento d
			inner join detadoc dt on d.documento=dt.documento
			inner join tipodoc td on td.tipoDoc=d.tipoDoc
			inner join cliente c on d.cliente=c.cliente
			where d.cliente=? and d.fecha>?
			
			
		";
		return ORMConnection::getOne($sql,array($cliente,$fecha));
	}
	
	public static function getmovimientos2($fechaIni=NULL,$fechaFin=NULL,$nropagina)
	{
		
		$tam=30;
		$ini=$nropagina*30;		
		$sql= "SELECT d.documento,td.descripcion as tipodoc,date(d.fecha) as fecha,c.nombre as cliente,sum(dt.cantidad*dt.precioUnit)as montoV from documento d
			inner join detadoc dt on d.documento=dt.documento
			inner join tipodoc td on td.tipoDoc=d.tipoDoc
			inner join cliente c on d.cliente=c.cliente
			where d.fecha>=? and d.fecha<=?		
			group by d.documento 
			order by d.fecha
			limit $ini,$tam
		";
			
		return ORMConnection::Execute($sql,array($fechaIni,$fechaFin));	
			
		
	}
	public static function getTamaño2($fechaIni,$fechaFin)
	{
		
		$sql= "SELECT count(*) from documento d
			inner join detadoc dt on d.documento=dt.documento
			inner join tipodoc td on td.tipoDoc=d.tipoDoc
			inner join cliente c on d.cliente=c.cliente
			where d.fecha>=? and d.fecha<=?
			
			
		";
		return ORMConnection::getOne($sql,array($fechaIni,$fechaFin));
	}
	public static function indiceCobranza()
	{
		$sql="SELECT SUM(dd.cantidad * dd.precioUnit) AS Total,
				(SELECT SUM(pagado) AS Monto FROM  documento
				 WHERE (cliente IS NOT NULL)) AS Cobranza
			   FROM documento d 
			   INNER JOIN detadoc dd ON d.documento = dd.documento
			   WHERE (d.cliente IS NOT NULL)";
		
		 return ORMConnection::Execute($sql);	
	}
	
	public static function VentasMensuales($añoi,$añof)
	{
		$sql="select YEAR(d.fecha) as año, MONTH(d.fecha) as mes, sum(dd.cantidad*dd.precioUnit) as subtotal
 				from documento d
  				inner join detadoc dd on d.documento=dd.documento
  				where YEAR(d.fecha)>=$añoi and YEAR(d.fecha)<=$añof
				Group by YEAR(d.fecha),MONTH(d.fecha)
				order by YEAR(d.fecha),MONTH(d.fecha)
				";
			
		 return ORMConnection::Execute($sql);
	}
	public static function detailVentas($documento)
	{
		$sql="select concat_ws('',dd.documento,dd.producto,dd.tipoDoc) as iddetadoc,
				p.descripcion,dd.cantidad,dd.precioUnit,(dd.cantidad*dd.precioUnit) as subtotal 
				from documento d
				inner join detadoc dd on d.documento=dd.documento
				inner join producto p on p.producto= dd.producto
				where d.documento= ?";	
				
		 return ORMConnection::Execute($sql,array($documento));	
	}
}	
?>